Log In  
[back to top]

[ :: Read More :: ]

Hello.

@zep, this one is for you.

Could you please NOT count inside memory any Pico-8 carts that have CRs or any lines that contain remarks.

This will be beneficial in two ways.

It will encourage coders to use multiple lines for their code with no penalty of adding CRs in them.

And two it will encourage coders to go crazy and REALLY give super-helpful hints, documents, and information on their carts and the functions that run in them.

For instance, this code.

--[[

Apple-Palooza written by dw817
Please consult the website at:
http://applepalooza.com
for more details regarding this.

]]

Would in fact take zero bytes of space at all. Only true code like cls() megaton=1000 and pset(x,y) would take up your valuable 8192 of tokens and 65535 characters of space.

I am aware that code written like this may not fit neatly into your compressed *.p8.png code, but saved as a normal text file, *.p8 or even posted online, you could definitely take any code size at all and just skip around the CRs, --, and --[[ statements.

Would anyone else like this coding freedom ?

P#120719 2022-11-14 20:58 ( Edited 2022-11-14 20:59)

[ :: Read More :: ]

Hello.

Two things, really. First off there is this wonderful program written by @pahammond that compresses source-code.

https://pahammond.itch.io/gem-minify

For long variable names it does a great job, changing: apple=25 to _a=25 which I feel could be even smaller with a=25

However it does not seem to compress variables that have 2-letters in them, for instance: te=25 compresses to te=25.

Yep. No compression at all.

So - either I'm not using the program correctly - or do you know of a Pico-8 minifier that will exhaust the single-character letters a-z for variables before going to 2-characters ?

If you must know I'm working on a useful function for everyone (no file access, no worries) :) yet I want it really compact so it's easy to slip in your own code.

What can I do in this respect ?

P#120649 2022-11-14 01:23 ( Edited 2022-11-14 01:25)

[ :: Read More :: ]

Hello.

First off, I am aware that you can poke a string via P8SCII:

@addrnnnn[binstr] poke nnnn bytes to address addr
!addr[binstr] poke all remaining characters to address addr

Yet that is a little unusual for us beginners and I would like to suggest @zep that you add this ability to poke() so you can have poke(addr,string) which would take the entire contents of that string and convert every character to a byte and POKE it in the memory location stated.

In return this should also have PEEK thus: string=peek(addr,len) which would transfer the contents of memory addr with a length of len to the string in question.

Bonus for poking arrays and peeking arrays additionally.

poke4(addr,array[]) which would normally take the array which uses 4-bytes per element and stuff that into memory addr Same with peek array[index]=peek4(addr,len)

However these other two would be nice, poke2(addr,array[]) and array[index]=peek2(addr,len) where in this case array[] would not contain a decimal value and only return a number from -32768 to 32767.

And poke(addr,array[]) and array[index]=peek(addr,len) would create an array that only contains numbers 0 to 255.

One last item, to be able to poke a single character thus: poke(addr,string[1]) which would poke the ord() (ASCII) of the very first character in string. Currently it does not work without ord() poke(addr,ord(string[1])

a="hello"
cls()
poke(0x6000,ord(a[1]))
?"",0,64

What do you think guys, would you like this ?

P#120561 2022-11-12 20:34 ( Edited 2022-11-12 22:28)

[ :: Read More :: ]

Hello.

-- clear screen
cls()

-- remap screen from standard
-- 0x6000 to 0x8000. does not
-- work.
poke(0x5f55,0x80)

-- plot a single pixel there.
pset(0,0,7)

-- should return 7, does not.
?peek(0x8000),0,64

I was not aware there was a limitation for poke(0x5f55),mempage to ONLY work for the regular screen (0x6000) and the spritesheet (0x0000) - no other memory location !

I would like to request, @zep, that the memory chosen for both poke(0x5f54) and poke(0x5f55) can be anything at all, especially allowing for 0x8000 0xa000 0xc000 and 0xe000

It would sure help me a lot in my code. All of these in fact: pset(), pget(), line(), rect(), rectfill(), circ(), circfill(), oval(), ovalfill(), cls(), print(), spr(), sspr(), and clip().

Would anyone else like this ability ?

P#120555 2022-11-12 19:05 ( Edited 2022-11-13 04:10)

[ :: Read More :: ]

Be aware, ZEP just fixed this. Thanks, Zep !

Hello.

If you click on your user name (see the golden arrow above) and icon that appears in the top-right-hand corner of this website (Lexaloffle), a small menu will appear beneath that.

If you click on Profile you get a page that shows all your posts and cartridges.

To view just the images of cartridges you've written, click on Cartridges.

And it will show you the cartridges you've written.

OK now here's the problem. If you scroll down a bit:

You will see carts you've not only written yourself but carts you've written on OTHER people's threads.

May I suggest there be an option to list ONLY the carts that you've written yourself - where you are the author of the thread.

The problem with the existing view is I will see carts that I've posted where I was making suggestions to someone's existing cart or perhaps fixing a bug or two.

I would like to have the option for a view where it shows ONLY the carts that I myself have written from scratch, and only the game-boxes as you see here.

And have it so the link can be shared with my friends, where I can show them what I've written myself, just like this link is shared:

https://www.lexaloffle.com/bbs/?uid=15232&mode=carts&sub=2#m

Would anyone else like this ability, to list only your own personal cartridges that can easily be accessed in Lexaloffle ?

P#120553 2022-11-12 18:53 ( Edited 2022-11-12 22:19)

[ :: Read More :: ]

Hello.

I would like to request a feature that was available in GFA years ago via bitblt() for bit blitter object.

While you can indeed do SPR() or SSPR() to transfer the entire contents of the SPRITESHEET (0x0000) to the display (0x6000) I would like to add that memcpy() have an added argument.

memcpy(dest,orig,len,transparent)

if transparent is not NIL then it assumes you are transferring pixel data and as such will modify memory as if you were using SPR(). So any colors that have the transparent flag will come into play.

While I know you can use 0x5f54 and 0x5f55, which does not work for map(), see this link for details on that:

https://www.lexaloffle.com/bbs/?tid=50158

Instead of changing the sprite and screen location, it would be far easier to transfer memory with transparency than poke to screen write to and spr() or sspr().

You could layer your screens.

function screen()
  cls()
  memcpy(0x6000,0xe000,0x2000,1)
  memcpy(0x6000,0xc000,0x2000,1)
  memcpy(0x6000,0xa000,0x2000,1)
  memcpy(0x6000,0x8000,0x2000,1)
end

This would first draw the screen at 0xe000, then on top of that, 0xc000, then 0xa000, then finally 0x8000.

Giving you a true 4-layers of graphics to work with.

Also if possible add to line(), rect(), rectfill(), circ(), circfill(), oval(), ovalfill(), spr(), sspr(), clip(), print(), and cls() an argument on the end that tells from which screen you are drawing to.

Default is 0x6000. So an example of drawing to memory would be:

line(0,0,127,63,7,0x8000)

This would draw a white line all the way across the screen and halfway down the screen in memory location 0x8000 treating that location 0x8000-0x9fff as a virtual screen.

To clear this memory location as a screen you would use:

cls(0,0x8000)

So what do you think about this ?

P#120490 2022-11-11 18:55 ( Edited 2022-11-12 20:25)

[ :: Read More :: ]

Cart #map256x128-0 | 2022-11-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

(v00 11-10-22)
TO LOAD THIS PICO-8 CART, in immediate mode, type: load #map256x128

To navigate use the arrow keys. Note the 1st and last tile in the map set are blank to show all 32768-tiles are in use.

Hello there.

With extended memory comes extended responsibilities, and one of them is the new ability to reroute the mapper to high memory.

As you know or should you have free RAM located from 0x8000-0xFFFF, a cool 32768-bytes for use.

So what this program does is take advantage of the fact you can now reroute the mapper from default location 0x2000 and instead point it to 0x8000.

Then memory is filled with random numbers 1-4 to show the sample 1-4 tiles.

And that's it !

The code itself is not very big however it is well documented. Either download from the information above or click on the Codeβ–½ seen just below the picture of the cart to see the sourcecode.

Enjoy !

P#120455 2022-11-10 20:43 ( Edited 2022-11-10 21:27)

[ :: Read More :: ]

Hello.

I am working on some code to use the spritesheet as screen memory as detailed in the Pico-8 help:

0X5F54 GFX:    can be 0x00 (default) or 0x60 (use the screen memory as the spritesheet)
0X5F55 SCREEN: can be 0x60 (default) or 0x00 (use the spritesheet as screen memory)
0X5F56 MAP:    can be 0x20 (default) or 0x10..0x2f, or 0x80 and above.
0X5F57 MAP SIZE: map width. 0 means 256. Defaults to 128.

Unfortunately map() does not work in ANY capacity to draw directly into the spritesheet.
@zep, Please have this fixed for next release !

Here is the code:

-- show map() does not work
-- for screen/spritesheet swap

for i=0,31 do
  for j=0,31 do
    mset(j,i,rnd(3)+1)
  end
end

cls()

-- take your pick, none work!
poke(0x5f54,0x00,0x00)
--poke(0x5f54,0x00,0x60)
--poke(0x5f54,0x60,0x00)
--poke(0x5f54,0x60,0x60)
cls(1)
map()

-- copy spritesheet to screen.

memcpy(0x6000,0,0x2000)

Here is the cart, I am using 3-sprites in it:

[24x8]

Cart #kefawadoze-0 | 2022-11-10 | Code ▽ | Embed ▽ | No License
2

... or if any of you guys can get it to work the way it is intended, I'll retract the bug ticket with my thanks to you.

P#120451 2022-11-10 19:36 ( Edited 2022-11-10 21:26)

[ :: Read More :: ]

Cart #stickybubbles-0 | 2022-11-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

(v00 11-09-22)
TO LOAD THIS PICO-8 CART, in immediate mode, type: load #stickybubbles

Hello fellow Piconians !

I was looking at some recent code by others and suddenly realized that we now have OVAL drawing ability ! I did not know this.

Back in GFA I had to use blitter stretch to get this kind of bubble effect. Of course in GFA you also had 24-bit color so I made the bubbles brighter on the edge and darker in the middle so they had a great luminescence about them.

I could do that here I suppose except with 16-colors it won't look so great.

Anyways what =IS= interesting and entertaining is that the bigger bubbles are sti-i-icky and they peel off the bottom of the screen before BOINGING upwards !

20 years ago I introduced the same effect to the GFA community to show the power of stretching a blitter object. At the time it was a pretty unique thing and lots of smiles all around indeed for finding a unique use for resizing a blitter object.

Today it is done much simpler with the ovalfill() routine.

What can YOU do with ovalfill() ?

P#120421 2022-11-10 02:45 ( Edited 2022-11-10 02:56)

[ :: Read More :: ]

(Wow ! Where did the cart go ?)

Because there are idiots in the world. Yep. And I have to write code so that they don't light firecrackers up their nose. SIGH I will return when this program is considerably safer.

(v07 11-08-22)

If you use this cart it is at your own risk cause it's not here for download now.


VVhat's new ?

  1. SAFETY OPTIONS, thanks to @freds72 and @scambier.

Hello there !

No, your eyes are not deceiving you. This is indeed NOT a Pico-8 game but a useful utility and one I had need of for quite some time now.

First off giving credit where credit is due, I am making use of @Heracleum's convenient picture to PRINT, especially since it's only 1-color and she is using ONE-OFF to do this. To make use of this utility yourself, go HERE:

https://www.lexaloffle.com/bbs/?tid=49901


Now what does this program do ? Just what it says. It is indeed a utility to help you compress files with 7zip. 7zip if you do not know is a standard and FREE utility to compress files. Some compression can be quite high especially files that are text only. It is also a standard practice to compress programs or games that exceed megabytes for storage.

Even a savings of 30% would be 300 megabytes for a 1 gigabyte file.

Here you can see the results of my utility and the file difference for DSK files. And most applications can read 7z and zip files directly without decompressing them so that's added hard-drive space in the long run when you're talking thousands of files.


Be aware as @freds72 stated AFTER I did, use this program at your own risk !

This program writes directly to your clipboard when you press CTRL+C. So your clipboard WILL change its data when you press CTRL+C !

If you want to be 100% safe, don't even open Dos Box and instead open notepad or some other text editor. In there press CTRL+V instead of right click to see the what got stuffed in your clipboard and you can see how my program works and how it compresses files and nothing will change on your computer - err - except the display in your note editor.

And only with brave heart, firm resolve, and nerves of steel should you EVER use this program in the way it was intended. Misuse of this program may lead to ranting and swearing and most importantly blaming others for your own mistakes. It's happened before.

Nonetheless, I will code this to not have the ending CR so you can see the commands before you commit to file changes.


Now with that caveat out of the way ...

If you don't have 7zip but still want to use this cart for compressing your files, that is also not a problem. You can either run this CART ONLINE or offline, it should work on both. Once the menu appears, select =1= and follow the directions there and you should be up and running with 7zip in no time.

With 7zip running, this cart will let you select one of the directories on your computer - and it doesn't need to be local to Pico-8.

In that directory you can select files or just those matching extensions with the option to checkmark individual files or all of them by pressing "A" - and then compress them with 7zip individually to their own single matching zip or 7z files.

To get started run the code and select option =2=

The rest of it is pretty self-explanatory. Basically it creates a kind of batch file through your clipboard that runs in CMD.EXE to do what you want - and of course you are welcome to examine the contents in NOTEPAD before you accept any changes. An early version of Windows was called, "DOS SHELL" and called CMD direct for its file changes.

It was pretty amazing what it could do because for the first time it introduced ALT-TAB between tasks, in this case, DOS tasks.

So what is DOS SHELL and CMD.EXE you might ask ? That is explained here:

https://en.wikipedia.org/wiki/DOS_Shell
https://en.wikipedia.org/wiki/Cmd.exe

While it does not delete any files it DOES give you a chance to MOVE any original files that were compressed to a custom directory of your design so they are out of the way of the newly compressed files.

I think the upper-visual limit is 1000 files as I am using a 3-digit display, although I'm pretty sure it can handle all the way up to 32000 file names even if it doesn't display their # correctly.

This will not be the only file utility I will write. I need others for different things, not just 7zip so I will use this engine base for that and notify you of any new tools i write.

Note: it is entirely possible to foul up the files on your computer if you go out of you way to do so. Please don't - and follow all prompts both in this description and in the cart. In all cases I do not claim responsibility.

Use this program at your own risk !

As always if you have any questions (especially ones not yet asked) or comments, feel free to enter them below.

Enjoy !

P#120326 2022-11-08 19:31 ( Edited 2022-11-09 02:21)

[ :: Read More :: ]

Hello.

I'm working on a batch utility to merge 7-Zip with Pico-8 and to work with directories outside Pico-8 as I have a need for this, yet I am running into a curious problem.

When I retrieve the directory, I am getting a filename back like:

3-d dOCKING mISSION (1978)(pROGRAMMA iNTERNATIONAL).DSK

@zep, could you please add some options to P8SCII such that I could convert this string line to 4-unique formats:

ORIGINAL:3-d dOCKING mISSION (1978)(pROGRAMMA iNTERNATIONAL).DSK
INVERSE :3-D Docking Mission (1978)(Programma International).dsk
LOWER   :3-d docking mission (1978)(programma international).dsk
UPPER   :3-D DOCKING MISSION (1978)(PROGRAMMA INTERNATIONAL).DSK
FIRSTCAP:3-D Docking Mission (1978)(Programma International).Dsk

It could be done via: "\c" followed by O I L U or F

It would then change the visual case for every character for that single PRINT or string definition line. Once a new string or definition is in place, the effect would not be there.

During the same text line you can use "\co" to turn it off and it is off by default.

Of course actually DOING caps to strings would be nice too with a new function called caps().

str=caps(str,1)
0 = No change
1 = Inverse
2 = Lower
3 = Upper
4 = Firstcap

P#120290 2022-11-07 23:23 ( Edited 2022-11-08 00:28)

[ :: Read More :: ]

Cart #mazechallenge-1 | 2022-11-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

(v01 11-07-22)
TO LOAD THIS PICO-8 CART, in immediate mode, type: load #mazechallenge

VVhat's new? (11-07-22)

  1. Fixed blocks so no part of map is missed now. (Please confirm this !)
  2. Pressing ❎ now has 3-modes. 1, 2, and 3.
  3. Made maze darker so it is easier to see the player.
  4. 3rd mode after fill now shows path as darker color of the blocks.
  5. Greatly sped up fill routine.
  6. Added notice on end on how to restart.
  7. Shrank code size slightly.

Hello there.

This is really more of an experiment that I think got way out of hand.

The premise is simple. With all of the tile-generating code out there, I wanted to see if it was possible to make a "maze-like" environment with no 100% straight corridors and using only 4- 8x8 tiles and placed randomly on the board. AND make it so that every point can be reached no matter the arrangement and that it is not a "cake walk" to do so - and there are no hard diagonal lines.

Run the code and navigate using the arrow keys. See if you can put the player in the top-left-hand corner of the maze.

Press ❎ to swap between showing the maze and the 4-different tiles.

  1. Dark blue.
  2. Dark red.
  3. Dark green.
  4. Brown

Press πŸ…ΎοΈ key to start to fill in every point from where the player is. If your tiles are correct, every point on the map should be reached. Once complete, press CTRL+R to rerun the code.

Try it with mine and you will see it gets all of the map now.

Your mission if you choose to accept it is to load my cart in Pico-8 and take my existing tiles and modify them or completely develop your original own.

Make a tile arrangement that is both pleasing to the eye to make it "maze-like" and so that every point can be reached by pressing πŸ…ΎοΈ.

This will require not only your programming skills and spatial knowledge but your artisan ability as well.

Also this code is free to all. CC0. Anyone can have it and use it for any reason, commercial or not. Modified or unmodified, no attribution.

When you've come up with a good arrangement, either post a new cart as a reply or paste the 4-tiles as an image directly into the code. You can do so by entering the sprite editor and using the mouse, hold down the shift key and highlight the 4-tiles. Press CTRL+C.

Then anywhere in your comment or reply, press CTRL+V to have them appear there. You can confirm this in PREVIEW. Explain how you developed your tiles and what thinking you did to do so.
Here are the 4-tiles I am using above:

[56x8]

Challenge yourself. Challenge each other. I'm very curious to see what you can come up with !

Bonus brain pick if you develop a set using more than 4 tiles.

Best of luck !

P#120238 2022-11-07 01:07 ( Edited 2022-11-07 19:07)

[ :: Read More :: ]

Hello.

I use RND() quite a bit, don't you ?

I have noticed in other game programming languages that you can have a 2nd argument for the rnd() command. Currently Pico-8 does not do this. It's quite useful though. Here's an example:

a=rnd(1,10)

Will for instance choose an integer random number between and including 1 through 10. This:

a=rnd(10,1)

Will give the same results. This however:

a=rnd(-4,4)

Will give you a random integer number between and including -4 to 4.

The function of which:

function rndrange(a,b)
  if (a>b) a,b=b,a
  return a+rnd(b-a+1)\1
end

How about it guys and @zep, do you think this is a good addition for Pico-8, to add a 2nd argument to already existing rnd() function ? Or a new function altogether, rrnd() for Range Random.

P#120076 2022-11-03 16:48 ( Edited 2022-11-03 16:48)

[ :: Read More :: ]

Hello, I hope this is not out of line. I know I opened a topic earlier regarding Fantasy Consoles using 4-bits which started a deep discussion:

https://www.lexaloffle.com/bbs/?tid=31985

So I thought I would bring up another concern of mine. How much can you store in 256-bytes of data ?

"The answer, to life, the universe, and everything !"

Is not 42.

No it's not.

No, in fact it may very well be 256.

I have been giving a lot of thought, most of my life really, to just how much data 256-bytes is. Not just for Pico-8 but in instances regarding philosophy, theology, and mathematics. Permutations involving matching identifications especially.

I am now fully believing that is possible to store an entire universe (or at least the molecular design for a block of cheese), inside the span of 256-bytes of data.

How is this possible ?

Well if we consider that life itself is made up of billions, trillions, of atoms, then isn't it possible that 256-bytes of data is enough to store all that complex information ?

And you may be asking, how can that be done ?

Well, think about it. We have 256 multiplied by itself, one time, is 256. Two bytes are 65,536 possibilities. Three bytes are 16,777,216, and four bytes are 4,294,967,296 possibilities.

At 4-bytes we are already at 4-billion possible definitions !

So, yeah, if you get 256 and multiply it 256 times which is a total space of 256-bytes, you get a number that I think is pretty close to the stars in the sky, or MAYBE the building blocks of the universe.

Is there a way to calculate 256^256 ? Not to my knowledge, No. Yet I suspect the number is large enough that even if it can't store the entire universe, it should be able to hold real-time true-to-life finite molecular data what we call LIFE.

And it should be possible to work within this scope to open literally uncounted possibilities for reality.

So the paltry sum of 256-bytes of data is clearly more than it appears to be. That every great computer program ever written or would be written could use this 256-bytes of memory as a marker.

An identification card to show which of the millions, billions, trillions, quadrillions, quintillions, sextillions, septillions, Octillions, Nonillions, and Decillions - of programs, of codes of reality, of building blocks of DNA, of - whatever you need to catalogue that goes beyond conventional numbering.

It could all be done - within 256-bytes of data.

Now here's the rub though. We have no way of "cataloguing" all of this data according to numbers. So today we are sloppy in our coding and development of data storage.

Sloppy to the point we don't even use permutations for numerical recall, instead we store finite numbers in areas that are full of holes.

Holes as big as a Buick.

Holes that if all added up together could probably circle the Earth a few times and maybe even comprise a new black hole.

A black hole of sloppy encoding. Using a single-byte to hold a single digit 0-9, or even 0-1 and the single byte of data, its position and time of arrival is considered of no consequence - could also be added to the mix to increase the permutation table further.

Where we live in an age where terabyte drives are the norm. And even more sloppy coding and encoding is done. So games today are not even counted in kilobytes or even megabytes, no gigbytes, and 2-3 years from now ?

Who knows ? We'll have videogames that take a full terabyte of storage.

So full of holes - so could it be catalogued in 256-bytes of data, a single bit variant from the 2048-variants which are calculated not according to changes but location in the change. The time it changes. The place it changes. All of these elements are critical to its definition.

All of these elements adding up to rock-solid data encryption and protection, these lowly 256-bytes. May someday be used for all kinds of identification in the future.

What are your thoughts regarding 256-bytes possibly being the ultimate storage of data ?

AND I'm going to leave this in your corner, guys, as I already stated my thoughts above.

P#119830 2022-10-29 18:01 ( Edited 2022-10-29 19:02)

[ :: Read More :: ]

Cart #phoneinput-0 | 2022-10-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7

(v00 10-28-22)
TO LOAD THIS PICO-8 CART, in immediate mode, type: load #phoneinput

Hello there !

To try out the code above, use the arrow keys to navigate, the πŸ…ΎοΈ key to select a character and the ❎ key to erase it. For a real challenge try typing out, "NEIGHBOR" as quickly as you can.

Since it may be a-while for Pico-8 to have its own onboard keyboard to let you type in your name for games and stuff, I was thinking of the marvel of a touch-tone telephone and how you can type in a name for instance for speed-dial.

Well it's pretty nifty what it does. On my own real phone for instance:

You can see the digits yet you can also see some smaller letters. For instance if you wanted to type out, "DIRK" for Dirk The Daring, then on this keypad you would press: 3 444 777 55

I liked how simple this was so I made my own. Above it functions just the same way except instead of blending the digits with the letters I gave the digits their own row above and the zero is just after the Z seen just above the CR key.

It's also interesting in that if you want to repeat a letter. Let's say the T in BATTER, then you would select the T and then not press anything. After a short pause it will be typed then you can type it in again.

If you don't want to wait for the key to be typed, pressing any arrow key to go to the next selection automatically makes your choice character the one to choose and adds it without delay to your message string.

In this you can rapidly enter text and even digits for your input. And I did not set a length. You can have the input as long as you like, it will intelligently scroll it for you.

Unlike other Pico-8 functions, however, this one will FREEZE your main code (except playing music which continues) while only my function works - and continues to do so until you select the text you want. Then your program will resume as normal with the results of the function.

This makes it a lot easier to call and not have to worry about the rest of your code running alongside it.

It also records the screen contents so you don't need to redraw after calling it and at no cost to either programming memory or extended.

I like this function and will be using it for future projects with a possible change to adding keys that they may be accessed much the same way where you press one key 2- 3- or 4- times in a row to get the extra keys attached you need.

I can add sound too if you want. Little clicks and stuff when you navigate and select. Those are some minor details, though.

For now this function works great as is. It is 414-tokens or 918-typed characters at 14-lines of code. You can copy/paste it in your own code and you don't need to press CTRL+P first either. It just uses normal text characters.

function phoneinput(t)

If this helps you in your code, please let me know !

P#119801 2022-10-29 00:18 ( Edited 2022-12-07 17:09)

[ :: Read More :: ]

I mourn the passing of @Xeonic's account in this board.

(SIGH)

Just recently I noticed ALL of her (his) posts, even the very smart and intelligent ones written regarding programming and hardware were utterly deleted because - well, she (he) went thermonuclear.

Folks, we're here to help. If there is a problem, please, let us try to work out with exceptional communication, intelligently, sensibly, and with great forethought and compassion. Please let us not ever have this happen again ...

P#119716 2022-10-28 03:03

[ :: Read More :: ]

[128x128]

π•³π–Šπ–‘π–‘π–” π•­π–”π–Žπ–‘π–˜ & π•²π–π–”π–šπ–‘π–˜ !

What's that ? You got Halloween on the brain ? Well who wouldn't !

It's that spooky time of year where things go bump in the night and you watch scary movies with popcorn and friends.

So having looked at the many programs of LIFE and how the pixels behave I thought I would one up this and create DEATH. Yep. Truly a creepy decay program, based on GFA code I wrote 20-years ago called "Plague," although there I had true 24-bit color so it was much more colorful and spooky.

by dw817
Cart #mcaf-0 | 2022-10-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

(v00 10-20-22) TO LOAD THIS PICO-8 CART, in immediate mode, type: load #mcaf

The WHITE represents good healthy cells and the - plague ? Yep, that's what is gnawing away at the sides, just feasting away on its succulent flesh. OK, that's a bit much, sorry 'bout that. :)

Still, run it full-screen, press the button to PLAY it and the button shown to the lower right to get the full effect of decay and erosion. Press CTRL+R at any point to restart it and [ESC] to exit full-screen.

In tune with Halloween please check out a blast from the past. The very first game I wrote for Pico-8, "Mildew's Manor."

https://www.lexaloffle.com/bbs/?tid=31730

And the game, "The Dead Should Die." based upon a creepy level in "Little Nightmares."

https://www.lexaloffle.com/bbs/?tid=35307

[64x64]

Have fun and be safe out there !

P#119410 2022-10-21 00:47 ( Edited 2022-10-21 03:25)

[ :: Read More :: ]

Cart #bruteforcepw-1 | 2022-10-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4


(v01 10-20-22)TO LOAD THIS PICO-8 CART, in immediate mode, type: load #bruteforcepw

Hello.

I was looking at the source-code of @Guest122's program:

https://www.lexaloffle.com/bbs/?pid=119387

To guess someone's password and while his has a dictionary, I did want to point out just how quickly and how unsafe it is to have a small password for instance on one of your internet accounts.

So I wrote this program. What it does is allow you to input a 4-letter word via the regular joystick and then through brute force go from AAAA to ZZZZ to find what your password was, and tell you how long it took to search.

Run it. Use the UP and DOWN arrow keys to change letters, the LEFT and RIGHT arrow keys to change character positions and the πŸ…ΎοΈ and ❎ keys to accept that letter or delete one.

For instance XRAY is found in only 13.9 seconds.

A word like ADAM is even faster since the first letter to search is already A, in at 0.0667 seconds.

Be aware that 'bots traveling the internet and using this method to guess people's passwords are millions of times faster than this and can handle a lot more characters like 9-10 in just seconds. Always use a good and complex password when creating accounts online.

I may follow this up with a comprehensive password generator, that generates passwords based upon what you know so you will never forget it.

BY THE WAY, I was wondering if someone could please post a better version of what I did above. It would be code to demonstrate the same thing yet not use an array - and the string can be any length, so it's not just limited to 4-characters.

Essentially you could have a 4-letter word like, "PANE." Then in the code you write guess for it, but do not use arrays. You would have to examine the actual characters and letters in the string. I couldn't figure that out in my head is why I used an array.

P#119388 2022-10-20 16:00 ( Edited 2022-10-20 16:15)

[ :: Read More :: ]

Hello.

Something good game programming languages have had for a long time is called "Virtual resolution."

For instance with Pico-8 you could have this sprite:

[8x8]

And then this code:

cls()
setvirtualresolution(16,16)
for i=0,3 do
  for j=0,3 do
    spr(1,j,i)
  end
end

And you would get a perfect set of blocks 4x4 at 8x8-pixels each. No need to multiply by 8 each time.

[32x32]

Fractions are also possible, if for instance you wanted to plot between one of the 16x16 blocks, you would use .5

For instance:

cls()
t="amazing grace"
setvirtualresolution(16,16)
print(t,8-#t*.5,1)

Which would show the text centered and on the 8th vertical pixel, even if the text had an odd number or even number of characters, by calculating 64 minus the length of the text times decimal 5, you would get the correct results each time.

You could even do this with 4-arguments, setvirtualresolution(-1,1,1,-1) so zero would be the center of the screen and -1 and +1 being the far edges of the screen.

How about it, @zep ?

Guys, what do you think ?

P#119331 2022-10-19 19:44 ( Edited 2022-10-19 20:05)

[ :: Read More :: ]

Hi all.

Now that I'm understanding ZEP's new 2ndary Font handler, is there any easy way to determine the # of pixels across in a text statement like, "Example" would take ? Particularly for if the font is proportional.

cls()
print("example",64-PixelLength("example")/2,32,7)
P#119201 2022-10-17 00:14 ( Edited 2022-10-17 03:32)

View Older Posts